package demo1;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Spring核心框架，本质上就是一个bean容器,管理项目中所有的类
 */
public class Demo {
    public static void main(String[] args) {
//        需求：调用User的SayyHello方法
//        1.传统方式，硬编码
//        优点：灵活
//        缺点：写死了，后期出现问题需要修改这里代码
        User user=new User();
        user.sayHello();
//        2：反射机制
//        优点：灵活，
//        缺点：编写量大的反射代码，导致代码的可读性差
        try {
            Class cls=Class.forName("demo1.User");
            User user1=(User)cls.newInstance();
            user1.sayHello();

        }catch (Exception e){
            e.printStackTrace();
        }
        //3.spring 容器
        AnnotationConfigApplicationContext context
                =new AnnotationConfigApplicationContext("demo1");
        User user2=context.getBean(User.class);
        user2.sayHello();
    }


}
